package com.southminority.ethnic.controller.research.vo;

import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 知识产权视图对象
 * 
 * @author SouthMinority
 */
@Data
public class IntellectualPropertyVO implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 知识产权ID
     */
    private Long id;

    /**
     * 知识产权名称
     */
    private String title;

    /**
     * 类型：patent-发明专利，utility-实用新型，software-软件著作权，dataset-数据集，trademark-商标
     */
    private String type;

    /**
     * 类型显示名称
     */
    private String typeDisplay;

    /**
     * 申请号
     */
    private String applicationNumber;

    /**
     * 授权号/登记号
     */
    private String authorizationNumber;

    /**
     * 申请日期
     */
    private LocalDate applicationDate;

    /**
     * 授权日期
     */
    private LocalDate authorizationDate;

    /**
     * 公开日期
     */
    private LocalDate publicationDate;

    /**
     * 发明人/著作权人（解析为数组）
     */
    private List<String> inventors;

    /**
     * 申请人
     */
    private String applicant;

    /**
     * 代理机构
     */
    private String agent;

    /**
     * 描述/摘要
     */
    private String description;

    /**
     * 技术领域
     */
    private String technicalField;

    /**
     * 主要权利要求
     */
    private String mainClaims;

    /**
     * 分类号
     */
    private String classificationNumber;

    /**
     * 法律状态：pending-待审，granted-已授权，rejected-被驳回，expired-已过期
     */
    private String legalStatus;

    /**
     * 法律状态显示名称
     */
    private String legalStatusDisplay;

    /**
     * 证书图片URL
     */
    private String certificateUrl;

    /**
     * 附件文件URLs（解析为对象数组）
     */
    private List<Map<String, String>> attachmentUrls;

    /**
     * 关键词（解析为数组）
     */
    private List<String> keywords;

    /**
     * 经济价值评估
     */
    private String economicValue;

    /**
     * 合作转化信息
     */
    private String cooperationInfo;

    /**
     * 排序
     */
    private Integer sortOrder;

    /**
     * 是否重点知识产权：1-是，0-否
     */
    private Integer isFeatured;

    /**
     * 状态：1-启用，0-禁用，-1-已删除
     */
    private Integer status;

    /**
     * 状态显示名称
     */
    private String statusDisplay;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 申请年份（用于分组显示）
     */
    private Integer applicationYear;

    /**
     * 授权年份（用于分组显示）
     */
    private Integer authorizationYear;
}
